[LIBXC] Convert between byte-based and 64-bit bitmap arrays. Use this
for conversion of the domctl_cpumap.
Original patch from Jimi Xenidis <jimix@watson.ibm.com> Signed-off-by: Keir Fraser <keir@xensource.com>
[XEN] Convert between long-based and byte-based bitmap arrays.
Use this for conversion of the domctl_cpumap type on big-endian
systems.
Original patch from Jimi Xenidis <jimix@watson.ibm.com> Signed-off-by: Keir Fraser <keir@xensource.com>
[HVM] Fix slow wallclock in x64 Vista. This is due to confusing a
timeout in the past vs. a timeout in the future when looking at a
32-bit HPET comparator. Signed-off-by: Dexuan Cui <dexuan.cui@intel.com> Signed-off-by: Keir Fraser <keir@xensource.com>
Ewan Mellor [Thu, 18 Jan 2007 17:48:59 +0000 (17:48 +0000)]
Allow vcpu_avail to be specified in the configuration file. Rationalise our
use of online_vcpus and max_vcpu_id, keeping track of the configured value in
vcpus_number.
Fix HVM SMP configuration to use the XendDomainInfo.getVCpuCount() call that
is used everywhere else, rather than parsing it out of the device config.
Fix xm list to show the configured VCPU count when the VM is down.
[IA64] Let Xen handle identity mapping for xenolinux region 7
During kernel build in dom0, half of the resulting slow reflections
are alt DTLB misses. Since we know Linux identity maps region 7,
Xen can handle the miss itself. This reduces the system time component
of the kernel build by nearly 15%.
The function pit_load_count incorrectly references current for
determining whether the channel number is zero. This breaks
when starting a new guest because current points to dom0.
The fix is to explicitly pass the address for verification.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Microcode does not need to have the default size of 2000+48 bytes.
A corresponding patch has gone into Linux 2.6.19; this is the
port to Xen.
Signed-off-by: Kurt Garloff <kurt@garloff.de>
Reference: Patch to linux kernel from Sep 27 2006
> # User Shaohua Li <shaohua.li@intel.com>
> # Node ID 45898b908138b5d93c2cc7353f061ce54af145dc
> # Parent f962eab7b82c9bf1a6da69571046e764f5128395
> [PATCH] x86 microcode: don't check the size
>
> IA32 manual says if micorcode update's size is 0, then the size is
> default size (2048 bytes). But this doesn't suggest all microcode
> update's size should be above 2048 bytes to me. We actually had a
> microcode update whose size is 1024 bytes. The patch just removed
> the check.
>
> Signed-off-by: Shaohua Li <shaohua.li@intel.com>
> Cc: Tigran Aivazian <tigran@veritas.com>
> Signed-off-by: Andrew Morton <akpm@osdl.org>
> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
>
> committer: Linus Torvalds <torvalds@g5.osdl.org> 1159370778 -0700
linux/i386: enhance dump_fault_path() in the highpte case
As long as the pte page isn't really located in highmem, there is no
reason to not access it, in order to print the complete page table
hierarchy. A functionally similar patch will go to lkml for native
Linux.
George Dunlap [Tue, 16 Jan 2007 19:04:12 +0000 (14:04 -0500)]
[XEN] Fix early-unshadow detection for 3- or 4-level guest pagetables.
Early-unshadow will unshadow whenever 2 zero values are written
to the same page; for PAE, one PTE takes 2 writes. Only check
for the early unshadow when writing the low half of the PTE.
[IA64] Change vCPU initialization to avoid domVTi privregs memory leak
1) This patch moved some processing from vcpu_initialise() and
added a new function vcpu_late_initialise().
It executes the following initializations for VCPU of
dom0/domU.
- Allocate the VHPT
- Allocate the privregs area and assign these pages into
guest pseudo physical address space.
- Set the tlbflush_timestamp.
2) This patch modified the domain_set_shared_info_va().
Currently, initialization of arch.privregs->interrupt_mask_addr
of all VCPUs is executed in domain_set_shared_info_va().
However, allocation of privregs area is late by modified of 1).
Therefore, this patch modified initialization of
arch.privregs->interrupt_mask_addr to the following sequence.
dom0 and domU:
ia64_hypercall(FW_HYPERCALL_SET_SHARED_INFO_VA)
->domain_set_shared_info_va()
Initialize interrupt_mask_addr of VCPU0
ia64_hypercall(FW_HYPERCALL_IPI)
->fw_hypercall_ipi(XEN_SAL_BOOT_RENDEZ_VEC)
->arch_set_info_guest(other VCPUs)
->vcpu_late_initialise(other VCPUs)
Initialize interrupt_mask_addr of other VCPUs
Alastair Tse [Thu, 18 Jan 2007 15:52:23 +0000 (15:52 +0000)]
[XEND] Change SrvServer to not require sockets to be non-blocking.
Set all spawned server threads to be daemonic and make sure their
sockets are closed properly using shutdown() and close(), otherwise
reload will complain about the "Address still in use."
[XEN] Simplify CR3 switching code (remove slow path that allows old
page tables to be writable in new page tables -- shadow mode cannot
handle the failure case and it is easy to work around this in the
guest anyway). Also remove broken shadow-refcount compat-mode case. Signed-off-by: Keir Fraser <keir@xensource.com>
Steven Hand [Tue, 16 Jan 2007 10:02:50 +0000 (10:02 +0000)]
Enable lazy (on-demand) allocation of memory to a guest being restored; this
means that ballooned down domains only require as much memory as is currently
being used (rather than their max) when being restored from save, or when
being migrated.
Allow extra application objects to be linked against a partial link of
minios with non-global names localised. For now we assume that global
names ill be assigned a xenos_ prefix in due course. We may decide to
choose a different prefix.
Those who wish to finish the link from an external Makefile can link
their own objects against mini-os.o (which must be first in link
order!) and specify the appropriate architecture linker script.
[XEN] Fix some e820 start-of-day issues by clipping all E820_RAM
regions to be page-sized and -aligned. Signed-off-by: Keir Fraser <keir@xensource.com>
Ian Campbell [Fri, 12 Jan 2007 16:03:33 +0000 (16:03 +0000)]
[PATCH] kexec/kdump: allow zero start for crashkernel
Some architectures, notably ia64, can automatically place
the crash kernel into an appropriate place if the start
address for crashkernel is specified as zero or omitted.
E.g. crashkernel=256M or crashkernel=256M@0
While xen does not actually have support for ia64 kexec,
I am working on it. And in any case this change should be harmless.
Just a small bit of infastructure that will make things easier in the
future.
This should also be possible on x86, now relocatable kernels
are reloacatble on x86. So once xen moves up to using linux ~2.6.19
it would make sense to look into implementing this.
The patch does 3 things.
* Firstly, parse_crashkernel() is modified to allows the size and start elements of kexec_crash_area
to be set to any value, including zero. Previously if either size or
start were specified as zero, they would both end up as zero.
* Secondly, when kexec_get() is called, if either the size or start
elements of kexec_crash_area are zero, then zero is passed
back to the hypercall caller for both values.
This gives the same behaviour as having parse_crashkernel() set
size and start to zero if either of them are zero, but it allows
architecture sepcific code called between the invocation of
parse_crashkernel() and kexec_get() to modify start (and size if
there was a reason). In particular, this allows the
architecture specific code to find a good start point if 0 is
specified.
* Lastly, it ads an additional check to the x86 setup code.
As this code currently does not know how to deal with a
0 start address, it doesn't reserve memory if start is 0.
This is neccessary as previously if start was specified as zero,
parse_crashkernel() would set size to zero, but that is
no longer the case, so a stronger check is needed.
I would really appreciate it if this patch was merged,
as I don't believe it harms anything, and it does allow
a nice path for moving forwards.
linux: Add trivial forwarding of dma_{,un}map_page when not using highmem
Use non-trivial dma_{un,}map_page only when CONFIG_HIGHMEM, allowing
to not compile swiotlb_{un,}map_page in that case, which in neither
case need exporting.
[LINUX] ipv6: Disable addrconf on Xen bridge device
The ipv6-no-autoconf patch didn't disable IPv6 addrconf completely.
This means that the Xen bridge device still interfered with normal
IPv6 operation by engaging the IPv6 network with a bogus MAC address.
For details please refer to
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200360
The following patch completely disables IPv6 on the Xen bridge device
by temporarily setting the MTU to a value less than the minimum
allowed for IPv6.
Upstream will provide a cleaner way to disable IPv6 addrconf in
future, possibly in the form of a proc sysctl. Of course if the Xen
loopback device is removed it would render this change unnecessary.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>